
package com.principle.abstractfactory;

/**
 * 抽象工厂：在产品有相同的约束下使用
 * 
 * @author ZH-SW-Zhangxg1
 */
public abstract class AbstractFactory {

    // public abstract AbstractProductA createProductA();
    // public abstract AbstractProductB createProductB();
    public abstract <T extends AbstractProductA> T createProductA(Class<T> clz);

    public abstract <T extends AbstractProductB> T createProductB(Class<T> clz);

}
